#ifndef COREERROR_H
#define COREERROR_H

/***************************************************************
	Класс для хранения и обработки ошибок
	Авторы: ...
	Дата: 21.02.2010г
***************************************************************/

#include <QtCore/qglobal.h>
#include <QObject>
#include <QStringList>

class Q_DECL_EXPORT CoreError : public QObject {
	Q_OBJECT

public:
	/**
		Конструктор класса
		 parent - родитель
		 name - имя объекта
	*/
    CoreError(QObject* parent = 0, QString name = "");
    /**
    	Деструктор класса
    */
	~CoreError();

private:
	//текущий код ошибки
	int currentnum;
	//текущее описание ошибки
	QString currentdesc;
	//текущий источник ошибки
	QString currentsrc;

public slots:
	/**
		Загрузка перечня ошибок
		file (входной параметр) - полный или относительный путь к файлу с перечнем ошибок;
		res (выходной параметр) - результат загрузки перечня ошибок.
	*/
	int Load(const QString& file);
	void Load(const QString& file, int& res) {
		res = Load(file);
	};

	/**
		num(входной параметр) - код текущей ошибки;
		source(входной параметр) - источник ошибки;
		params(входной параметр) - параметры ошибки.
	*/
	void SetCurrentError(const int& num, const QString& source, const QStringList& params);

signals:
	//сигнал установки ошибки
	void error();
	//сигнал что все нормально
	void ok();

};

#endif // COREERROR_H
